#include <stdio.h>
#include <string.h>
#include <stdlib.h>
// 4.研究strstr函数，自定义一个函数实现其功能

/*
 *haystack -- 要搜索的主字符串。
 *needle -- 要查找的子字符串。
 */
char *wyf_strstr(char *haystack, char *needle)
{
    if (!haystack || !needle)
        return NULL;
    if (!*needle)
        return haystack;

    int lengthH = strlen(haystack);
    int lengthN = strlen(needle);
    int ret = 0;
    int i = 0, j = 0;
    while (i < lengthH)
    {
        int temp = i; // 记录haytack对比位置
        for (int j = 0; j < lengthN; j++)
        {
            if (haystack[temp] == needle[j])
            {
                temp++;
                ret++;
            }
            else
            {
                // 重置
                temp = i;
                ret = 0;
                break;
            }
        }
        if (ret == lengthN)
        {
            return &haystack[i];
        }
        else
        {
            i++;
        }
    }
    return NULL;
}

int main()
{
    char *haystack = (char *)malloc(100);
    char *needle = (char *)malloc(100);
    strcpy(haystack, "Hello");
    strcpy(needle, "ll");
    printf("%p\n", &haystack[2]);
    printf("%p", wyf_strstr(haystack, needle));

    free(haystack);
    free(needle);
    return 0;
}